package br.jcrsistemas.syscomercio.cadastros.janelas;

import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JSeparator;
import javax.swing.SwingUtilities;
import javax.swing.border.EmptyBorder;

import br.jcrsistemas.componentes.SysFrame;
import br.jcrsistemas.componentes.SysTabbedPane;
import br.jcrsistemas.componentes.SysTextField;
import java.awt.Color;

public class FrmCadClientes extends SysFrame {

	private JPanel contentPane;
	private final JLabel lblTitulo = new JLabel("Cadastro de Clientes");
	private final JSeparator separator = new JSeparator();
	private final JLabel lblNome = new JLabel("Nome:");
	private final SysTextField txtNome = new SysTextField();
	private final SysTabbedPane tabbedPane = new SysTabbedPane();
	private final JPanel panelPrincipal = new JPanel();
	private final JRadioButton rdbtnPessoaFisica = new JRadioButton("Pessoa Física");
	private final JRadioButton rdbtnPessoaJuridica = new JRadioButton("Pessoa Jurídica");
	private final ButtonGroup groupPessoa = new ButtonGroup();
	private final JPanel panelPessoa = new JPanel();
	private final PanelPessoaFisica panelPessoaFisica = new PanelPessoaFisica();
	private final PanelPessoaJuridica panelPessoaJuridica = new PanelPessoaJuridica();
	private final JLabel lblEndereo = new JLabel("Endereço:");
	private final SysTextField txtEndereco = new SysTextField();
	private final JLabel lblNmero = new JLabel("Número:");
	private final SysTextField txtNumero = new SysTextField();

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					FrmCadClientes frame = new FrmCadClientes();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public FrmCadClientes() {
		initialize();
	}
	private void initialize() {
		setTitle("Cadastro de Clientes");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 1010, 720);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		lblTitulo.setIcon(new ImageIcon(FrmCadClientes.class.getResource("/br/jcrsistemas/icones/clientes_64.png")));
		lblTitulo.setFont(new Font("Segoe Print", Font.BOLD, 20));
		lblTitulo.setBounds(6, 6, 571, 71);
		
		contentPane.add(lblTitulo);
		separator.setForeground(Color.BLACK);
		separator.setBackground(Color.BLACK);
		separator.setBounds(0, 89, 994, 2);
		
		contentPane.add(separator);
		tabbedPane.setBounds(6, 103, 976, 567);
		
		contentPane.add(tabbedPane);
		
		tabbedPane.addTab("Principal", null, panelPrincipal, null);
		panelPrincipal.setLayout(null);
		txtNome.setBounds(83, 12, 561, 22);
		panelPrincipal.add(txtNome);
		txtNome.setTamanho(60);
		txtNome.setObrigatorio(true);
		lblNome.setBounds(12, 14, 41, 16);
		panelPrincipal.add(lblNome);
		groupPessoa.add(rdbtnPessoaFisica);
		rdbtnPessoaFisica.setBounds(655, 11, 137, 23);
		
		panelPrincipal.add(rdbtnPessoaFisica);
		groupPessoa.add(rdbtnPessoaJuridica);
		rdbtnPessoaJuridica.setBounds(801, 11, 147, 23);
		
		rdbtnPessoaFisica.addActionListener(new AcaoRadioPessoaFisica());
		rdbtnPessoaJuridica.addActionListener(new AcaoRadioPessoaJuridica());
		
		panelPrincipal.add(rdbtnPessoaJuridica);
		panelPessoa.setBounds(12, 42, 947, 42);
		
		panelPrincipal.add(panelPessoa);
		tabbedPane.setMnemonicAt(0, 'P');
		
		panelPessoaFisica.setBounds(panelPessoa.getBounds());
		panelPessoaJuridica.setBounds(panelPessoa.getBounds());
		panelPrincipal.add(panelPessoaFisica);
		panelPessoaFisica.setVisible(false);
		panelPessoaJuridica.setVisible(false);
		panelPessoa.setVisible(false);
		panelPrincipal.remove(panelPessoa);
		lblEndereo.setBounds(12, 98, 75, 16);
		
		panelPrincipal.add(lblEndereo);
		txtEndereco.setTamanho(50);
		txtEndereco.setBounds(88, 96, 583, 21);
		
		panelPrincipal.add(txtEndereco);
		lblNmero.setBounds(689, 98, 60, 16);
		
		panelPrincipal.add(lblNmero);
		txtNumero.setTamanho(10);
		txtNumero.setBounds(767, 96, 92, 21);
		
		panelPrincipal.add(txtNumero);
		
		SwingUtilities.invokeLater(new Runnable() {
			
			@Override
			public void run() {
				txtNome.requestFocus();
			}
		});
		
	}
	
	private class AcaoRadioPessoaFisica implements ActionListener {
		
		@Override
		public void actionPerformed(ActionEvent e) {
			panelPrincipal.remove(panelPessoaJuridica);
			panelPrincipal.remove(panelPessoaFisica);
			panelPrincipal.add(panelPessoaFisica);
			panelPessoaFisica.setVisible(true);
			panelPessoaJuridica.setVisible(false);
		}
		
	}
	
	private class AcaoRadioPessoaJuridica implements ActionListener {

		@Override
		public void actionPerformed(ActionEvent e) {
			panelPrincipal.remove(panelPessoaJuridica);
			panelPrincipal.remove(panelPessoaFisica);
			panelPrincipal.add(panelPessoaJuridica);
			panelPessoaJuridica.setVisible(true);
			panelPessoaFisica.setVisible(false);
			
		}
		
	}
}
